package com.mjr.webmanage.aop;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;

@Slf4j
//@Aspect
//@Component
public class MyAspect1 {


    @Pointcut("execution(* com.mjr.webmanage.service.impl.DeptServiceImpl.*(..))")
    private void pt() {

    }


    // 使用通用表达式
    @Before("pt()")
    public void bf() {
        log.info("MyAspect1 pt before");
    }

    // 原始方法运行之前
    @Before("execution(* com.mjr.webmanage.service.impl.DeptServiceImpl.*(..))")
    public void before() {
        log.info("MyAspect1 before");
    }

    // 原始方法运行之后
    @After("execution(* com.mjr.webmanage.service.impl.DeptServiceImpl.*(..))")
    public void after() {
        log.info("MyAspect1 after");
    }


    // 原始方法运行之后 方法正常运行后
    @AfterReturning("execution(* com.mjr.webmanage.service.impl.DeptServiceImpl.*(..))")
    public void afterReturning() {
        log.info("MyAspect1 afterReturning");
    }

    // 原始方法运行之后 方法异常运行后
    @AfterThrowing("execution(* com.mjr.webmanage.service.impl.DeptServiceImpl.*(..))")
    public void afterThrowing() {
        log.info("MyAspect1 afterThrowing");
    }



    @Before("@annotation(com.mjr.webmanage.anno.Log)")
    public void beforeAno() {
        log.info("MyAspect1 Log before");
    }
}
